package it.softphone.cmc.shared.entity;


import it.softphone.cmc.client.entity.AttributesCategory;

import com.google.web.bindery.autobean.shared.AutoBean;
import com.google.web.bindery.autobean.shared.AutoBeanFactory;
import com.google.web.bindery.autobean.shared.AutoBeanFactory.Category;

/**
 * 
 * @author bsorrentino
 *
 */
@Category( {AttributesCategory.class})
public interface EntityFactory extends AutoBeanFactory {

	AutoBean<Account> makeAccount();

	AutoBean<Account.ResultSet> makeAccountResultSet();

	AutoBean<Account.Preference> makeAccountPreference();

	AutoBean<Account.Preference.ResultSet> makeAccountPreferenceResultSet();
	
	AutoBean<Tenant> makeTenant();

	AutoBean<TenantUser> makeUser();

	AutoBean<TenantUser.ResultSet> makeUserResultSet();
	
	AutoBean<Transaction> makeTransaction();
	
	AutoBean<Version> makeVersion();
	
	AutoBean<HasAttributes> makeHasAttributes();
	
	AutoBean<Attributes> makeAttributes();
	
	AutoBean<ScriptletAsset> makeScriptlet();

	AutoBean<Asset> makeAsset();
	
	AutoBean<ScriptletAsset.KeyResulSet> makeScriptletKeyResultSet();

	AutoBean<Tenant.ResultSet> makeTenantResultSet();


}
